Ссылки по теме

*   [Persistent block device naming](/index.php/Persistent_block_device_naming "Persistent block device naming")
*   [File systems](/index.php/File_systems "File systems")
*   [Mount (Русский)](/index.php/Mount_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Mount (Русский)")
*   [tmpfs](/index.php/Tmpfs "Tmpfs")

Файл [/etc/fstab](https://en.wikipedia.org/wiki/Fstab "wikipedia:Fstab") используется для настройки параметров монтирования различных блочных устройств, разделов на диске и удаленных файловых систем.

Он состоит из набора определений файловых систем. Каждая файловая система занимает свою строку. Эти определения динамически преобразуются в юниты монтирования [systemd](/index.php/Systemd_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Systemd (Русский)") во время загрузки системы. При этом производится автоматическое разрешение зависимостей: службы, которые зависят от конкретной файловой системы, запускаются только после ее монтирования, а удаленные файловые системы вроде [NFS](/index.php/NFS "NFS") или [Samba](/index.php/Samba "Samba"), в свою очередь, монтируются только после того, как будет установлено сетевое подключение. Таким образом, и локальные, и удаленные файловые системы, указанные в `/etc/fstab`, будут правильно смонтированы без дополнительной настройки. По умолчанию, при монтировании также производится запуск проверки файловой системы программой [fsck](/index.php/Fsck "Fsck"). За подробной информацией обратитесь к [man-странице](/index.php/Man_page_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Man page (Русский)") `systemd.mount(5)`.

При монтировании с помощью *mount* fstab используется для определения точки монтирования, если указано только устройство, и наоборот. При этом параметры монтирования также берутся из fstab.

## Contents

*   [1 Пример файла](#.D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.80_.D1.84.D0.B0.D0.B9.D0.BB.D0.B0)
*   [2 Формат строки](#.D0.A4.D0.BE.D1.80.D0.BC.D0.B0.D1.82_.D1.81.D1.82.D1.80.D0.BE.D0.BA.D0.B8)
*   [3 Определение файловой системы](#.D0.9E.D0.BF.D1.80.D0.B5.D0.B4.D0.B5.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D1.84.D0.B0.D0.B9.D0.BB.D0.BE.D0.B2.D0.BE.D0.B9_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.8B)
    *   [3.1 По именам устройств](#.D0.9F.D0.BE_.D0.B8.D0.BC.D0.B5.D0.BD.D0.B0.D0.BC_.D1.83.D1.81.D1.82.D1.80.D0.BE.D0.B9.D1.81.D1.82.D0.B2)
    *   [3.2 По меткам](#.D0.9F.D0.BE_.D0.BC.D0.B5.D1.82.D0.BA.D0.B0.D0.BC)
    *   [3.3 По UUID](#.D0.9F.D0.BE_UUID)
    *   [3.4 По меткам GPT](#.D0.9F.D0.BE_.D0.BC.D0.B5.D1.82.D0.BA.D0.B0.D0.BC_GPT)
    *   [3.5 По UUID GPT](#.D0.9F.D0.BE_UUID_GPT)
*   [4 Советы и рекомендации](#.D0.A1.D0.BE.D0.B2.D0.B5.D1.82.D1.8B_.D0.B8_.D1.80.D0.B5.D0.BA.D0.BE.D0.BC.D0.B5.D0.BD.D0.B4.D0.B0.D1.86.D0.B8.D0.B8)
    *   [4.1 Автоматическое монтирование с systemd](#.D0.90.D0.B2.D1.82.D0.BE.D0.BC.D0.B0.D1.82.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B5_.D0.BC.D0.BE.D0.BD.D1.82.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D1.81_systemd)
    *   [4.2 Пробелы в значениях полей](#.D0.9F.D1.80.D0.BE.D0.B1.D0.B5.D0.BB.D1.8B_.D0.B2_.D0.B7.D0.BD.D0.B0.D1.87.D0.B5.D0.BD.D0.B8.D1.8F.D1.85_.D0.BF.D0.BE.D0.BB.D0.B5.D0.B9)
    *   [4.3 Внешние устройства](#.D0.92.D0.BD.D0.B5.D1.88.D0.BD.D0.B8.D0.B5_.D1.83.D1.81.D1.82.D1.80.D0.BE.D0.B9.D1.81.D1.82.D0.B2.D0.B0)
    *   [4.4 Параметры atime](#.D0.9F.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D1.8B_atime)
    *   [4.5 Запись в FAT32 с правами обычного пользователя](#.D0.97.D0.B0.D0.BF.D0.B8.D1.81.D1.8C_.D0.B2_FAT32_.D1.81_.D0.BF.D1.80.D0.B0.D0.B2.D0.B0.D0.BC.D0.B8_.D0.BE.D0.B1.D1.8B.D1.87.D0.BD.D0.BE.D0.B3.D0.BE_.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D1.82.D0.B5.D0.BB.D1.8F)
    *   [4.6 Перемонтирование корневого раздела](#.D0.9F.D0.B5.D1.80.D0.B5.D0.BC.D0.BE.D0.BD.D1.82.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BA.D0.BE.D1.80.D0.BD.D0.B5.D0.B2.D0.BE.D0.B3.D0.BE_.D1.80.D0.B0.D0.B7.D0.B4.D0.B5.D0.BB.D0.B0)
*   [5 Смотрите также](#.D0.A1.D0.BC.D0.BE.D1.82.D1.80.D0.B8.D1.82.D0.B5_.D1.82.D0.B0.D0.BA.D0.B6.D0.B5)

## Пример файла

Простой пример `/etc/fstab`, в котором файловые системы заданы по именам файлов устройств:

 `/etc/fstab` 
```
# <file system>        <dir>         <type>    <options>             <dump> <pass>
/dev/sda1              /             ext4      defaults,noatime      0      1
/dev/sda2              none          swap      defaults              0      0
/dev/sda3              /home         ext4      defaults,noatime      0      2
```

## Формат строки

Каждая строка в файле `/etc/fstab` содержит следующие поля, разделенные пробелами или символами табуляции:

```
*filesystem*    *dir*    *type*    *options*    *dump*    *pass*

```

	*filesystem*

	Физическое место размещения файловой системы, по которому определяется конкретный раздел или устройство хранения для монтирования. Смотрите подробнее в разделе [#Определение файловой системы](#.D0.9E.D0.BF.D1.80.D0.B5.D0.B4.D0.B5.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D1.84.D0.B0.D0.B9.D0.BB.D0.BE.D0.B2.D0.BE.D0.B9_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.8B).

	*dir*

	Точка монтирования, куда монтируется корень файловой системы.

	*type*

	Тип файловой системы. Поддерживается множество типов: `ext2`, `ext3`, `ext4`, `btrfs`, `reiserfs`, `xfs`, `jfs`, `smbfs`, `iso9660`, `vfat`, `ntfs`, `swap` и `auto`. При выборе `auto` команда mount попытается определить реальный тип файловой системы самостоятельно. Это полезно для компакт-дисков (CD/DVD).

	*options*

	Параметры монтирования файловой системы. Подробнее смотрите на [mount(8)](http://jlk.fjfi.cvut.cz/arch/manpages/man/mount.8#FILESYSTEM-INDEPENDENT_MOUNT_OPTIONS). Обратите внимание, что некоторые параметры относятся к конкретным типам файловых систем.

	*dump*

	Используется утилитой *dump* для определения того, нужно ли создать резервную копию данных в файловой системе. Возможные значения: 0 или 1\. Если указано число 1, dump создаст резервную копию. У большинства пользователей утилита dump не установлена, поэтому им следует указывать 0 в этом поле.

	*pass*

	Используется программой [fsck](/index.php/Fsck "Fsck") для определения того, нужно ли проверять целостность файловой системы. Возможные значения: 0, 1 или 2\. Значение 1 следует указывать только для корневой файловой системы (с точкой монтирования `/`); для остальных ФС, которые вы хотите проверять, используйте значение 2, которое имеет менее высокий приоритет.Обратите внимание, что в случае [btrfs](/index.php/Btrfs "Btrfs") следует всегда указывать 0, даже если эта файловая система используется в качестве корневой. Файловые системы, для которых в поле указано значение 0, не будут проверяться fsck.

## Определение файловой системы

Конкретное место расположения файловой системы может быть определено различными способами. В файле `/etc/fstab` можно указать имя файла устройства, его метку или UUID (в том числе GPT-метку и GPT-UUID для дисков GPT). Определение по UUID является наиболее предпочтительным способом. Подробнее об этом вы можете узнать на странице [Persistent block device naming](/index.php/Persistent_block_device_naming "Persistent block device naming").

Далее приведены примеры определений файловых систем с использованием каждого из способов. Вывод `lsblk -f` and `blkid` для этих примеров вы можете найти на странице [Persistent block device naming](/index.php/Persistent_block_device_naming "Persistent block device naming").

**Примечание:** Рекомендуем вам прочесть статью [Persistent block device naming](/index.php/Persistent_block_device_naming "Persistent block device naming") перед тем, как продолжить.

### По именам устройств

Запустите `lsblk -f`, чтобы отобразить список разделов. Укажите имена устройств с префиксом `/dev/`.

 `/etc/fstab` 
```
# <file system> <dir> <type> <options>                                                                                            <dump> <pass>
/dev/sda1       /boot vfat   rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0      2
/dev/sda2       /     ext4   rw,relatime,discard,data=ordered                                                                     0      1
/dev/sda3       /home ext4   rw,relatime,discard,data=ordered                                                                     0      2
/dev/sda4       none  swap   defaults                                                                                             0      0

```

### По меткам

Запустите `lsblk -f`, чтобы отобразить список разделов. Укажите метки из столбца `LABEL` с префиксом `LABEL=`:

 `/etc/fstab` 
```
# <file system> <dir> <type> <options>                                                                                            <dump> <pass>
LABEL=EFI       /boot vfat   rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0      2
LABEL=SYSTEM    /     ext4   rw,relatime,discard,data=ordered                                                                     0      1
LABEL=DATA      /home ext4   rw,relatime,discard,data=ordered                                                                     0      2
LABEL=SWAP      none  swap   defaults                                                                                             0      0

```

**Примечание:** Если какое-нибудь из полей содержит пробелы, прочитайте в разделе [#Пробелы в значениях полей](#.D0.9F.D1.80.D0.BE.D0.B1.D0.B5.D0.BB.D1.8B_.D0.B2_.D0.B7.D0.BD.D0.B0.D1.87.D0.B5.D0.BD.D0.B8.D1.8F.D1.85_.D0.BF.D0.BE.D0.BB.D0.B5.D0.B9) о том, как правильно их указывать.

### По UUID

Запустите `lsblk -f`, чтобы отобразить список разделов. Укажите идентификаторы из столбца `UUID` с префиксом `UUID=`:

 `/etc/fstab` 
```
# <file system>                           <dir> <type> <options>                                                                                            <dump> <pass>
UUID=CBB6-24F2                            /boot vfat   rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0      2
UUID=0a3407de-014b-458b-b5c1-848e92a327a3 /     ext4   rw,relatime,discard,data=ordered                                                                     0      1
UUID=b411dc99-f0a0-4c87-9e05-184977be8539 /home ext4   rw,relatime,discard,data=ordered                                                                     0      2
UUID=f9fe0b69-a280-415d-a03a-a32752370dee none  swap   defaults                                                                                             0      0

```

**Совет:** Если вы хотите отобразить только UUID конкретного раздела, используйте команду `lsblk -no UUID */dev/sda2*`.

### По меткам GPT

Запустите `blkid` чтобы отобразить список разделов. Укажите значения `PARTLABEL` без кавычек:

 `/etc/fstab` 
```
# <file system>                      <dir> <type> <options>                                                                                            <dump> <pass>
PARTLABEL=EFI\040SYSTEM\040PARTITION /boot vfat   rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0      2
PARTLABEL=GNU/LINUX                  /     ext4   rw,relatime,discard,data=ordered                                                                     0      1
PARTLABEL=HOME                       /home ext4   rw,relatime,discard,data=ordered                                                                     0      2
PARTLABEL=SWAP                       none  swap   defaults                                                                                             0      0

```

**Примечание:** Если какое-нибудь из полей содержит пробелы, прочитайте в разделе [#Пробелы в значениях полей](#.D0.9F.D1.80.D0.BE.D0.B1.D0.B5.D0.BB.D1.8B_.D0.B2_.D0.B7.D0.BD.D0.B0.D1.87.D0.B5.D0.BD.D0.B8.D1.8F.D1.85_.D0.BF.D0.BE.D0.BB.D0.B5.D0.B9) о том, как их правильно указать.

### По UUID GPT

Запустите `blkid` чтобы отобразить список разделов. Укажите значения `PARTUUID` без кавычек:

 `/etc/fstab` 
```
# <file system>                               <dir> <type> <options>                                                                                            <dump> <pass>
PARTUUID=d0d0d110-0a71-4ed6-936a-304969ea36af /boot vfat   rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0      2
PARTUUID=98a81274-10f7-40db-872a-03df048df366 /     ext4   rw,relatime,discard,data=ordered                                                                     0      1
PARTUUID=7280201c-fc5d-40f2-a9b2-466611d3d49e /home ext4   rw,relatime,discard,data=ordered                                                                     0      2
PARTUUID=039b6c1c-7553-4455-9537-1befbc9fbc5b none  swap   defaults                                                                                             0      0

```

## Советы и рекомендации

### Автоматическое монтирование с systemd

Если у вас большой раздел `/home`, вы можете разрешить службам, которые не обращаются к `/home`, запускаться в то время, как `/home` проверяется программой *fsck*. Для этого добавьте следующие параметры монтирования в запись `/etc/fstab` для точки монтирования `/home`:

```
noauto,x-systemd.automount

```

При этом процедура проверки и монтирования `/home` будет запущена только при первой попытке доступа, и ядро будет держать в ожидании все создаваемые потоки ввода-вывода в `/home`, пока раздел не будет смонтирован.

**Примечание:** Ускорение при автоматическом монтировании `/home` может составлять не более секунды-двух, в зависимости от конфигурации вашей системы. При этом разделу `/home` будет присвоен тип файловой системы `autofs`, который по умолчанию игнорируется [mlocate](/index.php/Mlocate "Mlocate"). Используйте эту возможность с осторожностью.

Автоматическое монтирование может аналогичным образом использоваться и для монтирования удаленных файловых систем. В дополнение, вы можете использовать параметр `x-systemd.device-timeout=#` для указания времени ожидания удаленной файловой системы при перебоях в соединении.

**Примечание:** Если вы намереваетесь использовать флаг `exec` при автоматическом монтировании, вам следует удалить флаг `user`, чтобы монтирование производилось корректно. Подробнее смотрите в [отчете об ошибке](https://bugzilla.redhat.com/show_bug.cgi?id=769636).

Если у вас имеются зашифрованные файловые системы, вы можете также добавить параметр `noauto` в соответствующие записи в `/etc/crypttab`. Тогда systemd не будет пытаться открыть зашифрованное устройство во время загрузки системы, а сделает это при первой попытке доступа к файловой системе на этом устройстве, применив указанный файл ключа и затем автоматически смонтировав ФС. Это может дать выигрыш в несколько секунд при загрузке системы, например, если у вас зашифрованный RAID массив: systemd не придется ожидать готовности устройства. Пример записи:

 `/etc/crypttab`  `data /dev/md0 /root/key noauto` 

### Пробелы в значениях полей

Так как пробельные символы используются в `fstab` для разделения полей, их нельзя напрямую использовать в значениях полей. Любые пробелы в полях (например, значения `PARTLABEL`, `LABEL` или точки монтирования) должны быть заменены специальными управляющими последовательностями, которые состоят из обратной косой черты (`\`) и трех восьмеричных цифр (например, для пробела это `\040`):

 `/etc/fstab` 
```
UUID=47FA-4071     /home/username/Camera<font color="grey">**\040**</font>Pictures   vfat  defaults,noatime       0  0
/dev/sda7          /media/100<font color="grey">**\040**</font>GB<font color="grey">**\040**</font>(Storage)       ext4  defaults,noatime,user  0  2
```

### Внешние устройства

Если устройство не подключено постоянно, и может отсутствовать во время загрузки системы, монтируйте его с параметром `nofail`. Это предотвратит появление ошибок при загрузке.

 `/etc/fstab`  `/dev/sdg1        /media/backup    jfs    defaults,nofail    0  2` 

### Параметры atime

*   Если файловая система смонтирована с параметром `atime`, то, когда происходит обращение к файлу, в его поле atime записывается текущее время (иными словами, время доступа). Это может быть полезно, когда Linux используется на сервере; на персональном компьютере эта функция обычно не нужна. Недостаток этой функции в том, что даже при чтении файла из кэша (в оперативной памяти) все равно производится медленная операция записи на диск. Использование параметров монтирования `noatime`, `nodiratime` или `relatime` может улучшить производительность доступа к данным, а также уменьшить износ твердотельных (SSD) накопителей.

*   Параметр `noatime` полностью отключает запись времени доступа к файлу. Большинство программ не используют это поле. Но бывают и редкие исключения — например, [Mutt](/index.php/Mutt "Mutt") полагается на его значение. Для *mutt* вы можете использовать параметр `relatime`.

*   Параметр `nodiratime` отключает обновление времени доступа только для каталогов; для остальных файлов время atime будет обновляться всегда.

**Примечание:** Действие `noatime` перекрывает собой `nodiratime`. [Нет необходимости указывать оба параметра](http://lwn.net/Articles/244941/).

*   Параметр `relatime` включает обновление поля только когда содержимое файла перезаписывается (в отличие от `noatime`, при котором поле atime вообще не обновляется, и может становиться раньше времени изменения mtime). Использование этого параметра наиболее предпочтительно, так как программы вроде [Mutt](/index.php/Mutt "Mutt") будут работать корректно, и при этом вы все равно получите достаточное улучшение производительности: при операциях чтения (как правило, гораздо более частых, чем записи) не будет производиться запись времени на диск. По умолчанию файловые системы монтируются с этим параметром.

### Запись в FAT32 с правами обычного пользователя

Чтобы иметь возможность записи в разделе FAT32, вам следует указать правильные параметры монтирования в вашем файле `/etc/fstab`.

 `/etc/fstab`  `/dev/sdxY    /mnt/some_folder  vfat   user,rw,umask=000              0  0` 

Флаг `user` означает, что любой пользователь сможет монтировать и размонтировать раздел `/dev/sdX`. Параметр `rw` дает доступ на чтение-запись; `umask` убирает указанные права — например, `umask=111` удаляет права на выполнение. Проблема в том, что права на "выполнение" также удаляются у каталогов, поэтому мы должны исправить это при помощи параметра `dmask=000` (подробности смотрите на странице [Umask](/index.php/Umask "Umask")).

Без этих параметров все файлы будут восприниматься исполняемыми. Вы можете использовать параметр `showexec` вместо umask и dmask, при которой исполняемыми будут файлы, имеющие расширения исполняемых файлов Windows (*.com*, *.exe*, *.bat*).

Например, если ваш раздел FAT32 на `/dev/sda9`, и вы хотите смонтировать его в каталог `/mnt/fat32`, то вам следует использовать запись следующего вида:

 `/etc/fstab`  `/dev/sda9    /mnt/fat32        vfat   user,rw,umask=111,dmask=000    0  0` 

### Перемонтирование корневого раздела

Если по какой-то причине корневой раздел был неправильно смонтирован только на чтение, вы можете перемонтировать его с доступом на чтение-запись без перезагрузки, набрав

```
# mount -o remount,rw /

```

## Смотрите также

*   [Полный список устройств, включающий также блочные устройства](http://www.kernel.org/pub/linux/docs/lanana/device-list/devices-2.6.txt)
*   [Стандарт иерархии файловой системы (FHS)](http://www.pathname.com/fhs/2.2/index.html)
*   [Ускорение веб-сайта в 30 раз](http://www.askapache.com/web-hosting/super-speed-secrets.html) (подробнее о tmpfs)
*   [Samba#Добавление сетевых ресурсов Sabma в /etc/fstab](/index.php/Samba#.D0.94.D0.BE.D0.B1.D0.B0.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D1.81.D0.B5.D1.82.D0.B5.D0.B2.D1.8B.D1.85_.D1.80.D0.B5.D1.81.D1.83.D1.80.D1.81.D0.BE.D0.B2_Sabma_.D0.B2_.2Fetc.2Ffstab "Samba")